package com.yeyks.hotel.param;

import cn.hutool.core.util.StrUtil;
import com.yeyks.common.param.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HotelInfoC2bHotelVipSearchParam extends PageParam {

    private static final long serialVersionUID = -4845178244921330465L;

    /**
     * 城市名称，例：北京
     */
    @ApiModelProperty(value = "城市名称")
    @NotBlank(message = "城市必填")
    private String city;

    /**
     * 入住时间
     */
    @ApiModelProperty("入住时间")
    @NotNull(message = "入住时间不能为空")
    private Date checkIn;

    /**
     * 离店时间
     */
    @ApiModelProperty("离店时间")
    @NotNull(message = "离店时间不能为空")
    private Date checkOut;

    /**
     * 经度
     */
    @ApiModelProperty("经度(必填)")
    @NotNull(message = "经度必填")
    private Double positionX;

    /**
     * 维度
     */
    @ApiModelProperty("维度(必填)")
    @NotNull(message = "纬度必填")
    private Double positionY;

    /**
     * 关键字(酒店名称)
     */
    @ApiModelProperty("关键字(酒店名称)")
    private String keyword;

    /**
     * 排序 1智能(评分高到低)，2距离(近到远)，3价格(低到高)，4价格(高到低)
     */
    @ApiModelProperty("排序 默认1智能(评分高到低)，2距离(近到远)，3价格(低到高)")
    private Integer sort = 1;

    /**
     * 舒适度 1(舒适) 2(高档) 3(豪华) 4(民宿),多选使用逗号隔开(如舒适和高档：1,2)
     */
    @ApiModelProperty("舒适度 默认1(舒适) 2(高档) 3(豪华) 4(民宿),多选使用逗号隔开(如舒适和高档：1,2)")
    private List<Integer> comfort;

    public HotelInfoC2bHotelVipSearchParam setComfort(String comfort) {
        this.comfort = new ArrayList<>();
        if (StrUtil.isNotBlank(comfort)) {
            String[] split = comfort.split(",");
            for (String s : split) {
                try {
                    this.comfort.add(Integer.valueOf(s));
                } catch (Exception e) {
                }
            }
        }
        return this;
    }

    //默认距离
    @ApiModelProperty(value = "默认距离",hidden = true)
    private Integer distance;

}
